The client-server model is a distributed application structure that has been prevalent in the computer software industry for decades. In essence it allows for distributed access to the same data by multiple clients. As this computing paradigm has continued to evolve it has become the staple of network computing as we know it today. Many of the business applications currently written are implementations of the client-server model over different protocols.
One of the most prevalent uses of the client-server model is for web-based applications. With web-based applications the client program is a software implementation known as a web browser that sends requests to a web server. In turn the web server communicates back to the client with responses that consist of data and presentation elements embedded within (X)HTML. The use of a markup language/protocol allows for great interoperability between different web browsers on multiple platforms.
The limitation however with web-based applications is that other distributed clients which do not implement the (X)HTML protocol or rich applications that utilize other technologies to render and execute programs can not consume, process, or interpret the information returned from a web server in an efficient and consistent manner. In response to this limitation web services were introduced.
Web services define an application-programming interface (API) that exposes and defines methods of communication between two machines. This allows client applications to access data in a machine-processable format from a server. The client can then determine how it should present the data received to the end user. Unfortunately web services that transmit data do not define the presentation format for how the data should be, among other things, displayed, formatted, connected, client-validated, cached. Additionally, the presentation capabilities of the client machine vary greatly in accordance to the hardware specifics, graphic capabilities, available software stack, etc. So even if an application provided a presentation format it is entirely possible that the end client may not be able to present or display the user interface in accordance with the specifications provided by the server. This content is statically embedded in the device and the User Interface as well as other auxiliary logic is separated from the server-defined behavior.
Thus, it is desirable to provide a new method for defining a metadata driven application behavior system that can be implemented across any type of client on any electrical device and it is to this end that the disclosure is directed.